package com.sunfeng.n8;

import java.util.concurrent.*;
import java.util.concurrent.BlockingQueue;

/**
 * 测试线程池构造方法
 *
 * @author sunfeng
 * @date 2021/04/20 17:09
 **/
public class ThreadPoolConstructTest {
    public static void main(String[] args) {
        /**
         * corePoolSize 核心线程数目 (最多保留的线程数
         * maximumPoolSize 最大线程数目
         * keepAliveTime 生存时间 - 针对救急线程
         * unit 时间单位 - 针对救急线程
         * workQueue 阻塞队列
         * threadFactory 线程工厂 - 可以为线程创建时起个好名字
         * handler 拒绝策略
         */
        ThreadPoolExecutor executor = new ThreadPoolExecutor(10,
                20,
                10,
                TimeUnit.SECONDS,
                new ArrayBlockingQueue<Runnable>(10),
                r -> new Thread("就是一个线程"),
                new ThreadPoolExecutor.AbortPolicy());
    }
}
